Termination Proof Script

Consider the TRS R consisting of the rewrite rules
1:    eq(0,0)  → true
2:    eq(0,s(x))  → false
3:    eq(s(x),0)  → false
4:    eq(s(x),s(y))  → eq(x,y)
5:    or(true,y)  → true
6:    or(false,y)  → y
7:    union(empty,h)  → h
8:    union(edge(x,y,i),h)  → edge(x,y,union(i,h))
9:    reach(x,y,empty,h)  → false
10:    reach(x,y,edge(u,v,i),h)  → if_reach_1(eq(x,u),x,y,edge(u,v,i),h)
11:    if_reach_1(true,x,y,edge(u,v,i),h)  → if_reach_2(eq(y,v),x,y,edge(u,v,i),h)
12:    if_reach_2(true,x,y,edge(u,v,i),h)  → true
13:    if_reach_2(false,x,y,edge(u,v,i),h)  → or(reach(x,y,i,h),reach(v,y,union(i,h),empty))
14:    if_reach_1(false,x,y,edge(u,v,i),h)  → reach(x,y,i,edge(u,v,h))
There are 11 dependency pairs:
15:    EQ(s(x),s(y))  → EQ(x,y)
16:    UNION(edge(x,y,i),h)  → UNION(i,h)
17:    REACH(x,y,edge(u,v,i),h)  → IF_REACH_1(eq(x,u),x,y,edge(u,v,i),h)
18:    REACH(x,y,edge(u,v,i),h)  → EQ(x,u)
19:    IF_REACH_1(true,x,y,edge(u,v,i),h)  → IF_REACH_2(eq(y,v),x,y,edge(u,v,i),h)
20:    IF_REACH_1(true,x,y,edge(u,v,i),h)  → EQ(y,v)
21:    IF_REACH_2(false,x,y,edge(u,v,i),h)  → OR(reach(x,y,i,h),reach(v,y,union(i,h),empty))
22:    IF_REACH_2(false,x,y,edge(u,v,i),h)  → REACH(x,y,i,h)
23:    IF_REACH_2(false,x,y,edge(u,v,i),h)  → REACH(v,y,union(i,h),empty)
24:    IF_REACH_2(false,x,y,edge(u,v,i),h)  → UNION(i,h)
25:    IF_REACH_1(false,x,y,edge(u,v,i),h)  → REACH(x,y,i,edge(u,v,h))
The approximated dependency graph contains 3 SCCs: {15}, {16} and {17,19,22,23,25}.
Tyrolean Termination Tool  (48.71 seconds)   ---  May 3, 2006